# 在代码段中使用栈，将定义的数据逆序存放

assume cs:code

codesg segment
	dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h
	dw 0,0,0,0,0,0,0,0,0,0,0,0,0

	# 用 dw 定义16个字型数据，在程序加载后，将得到16个1字符的内存空间，存放这16个数据。
	# 在后面的程序中将这段空间当作栈来使用

start:	mov ax,cs
		mov ss,ax
		mov sp,30h		# 将1设置栈顶1 ss:sp 指向 cs:30

		mov bx,0
		mov cx,8
s:		push cs:[bx]
		add bx,2
		loop s 			# 以上将代码段 0~15 单元中的 8个字型数据依次入栈

s0:		pop cs:[bx]
		add bx,2
		loop s0			# 以上依次出栈8个字型数据到代码段 0~15 单元中

		mov ax,4c00h
		int 21h

codesg ends
end start				# 指明程序的入口在 start 处